﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Systemet.SideViews
{
    public partial class SideKundkort : UserControl
    {
        private Views.Kundkort mainKundkort;
        private KundController kC;
        private IEnumerable<Kundregister> kunder;
        public SideKundkort()
        {
            InitializeComponent();
            AccessController.Instance.SidMeny = this;
            updateComboboxes();
        }

        private void SideKundkort_Load(object sender, EventArgs e)
        {
            FlowController.Instance.ShowSpecifikMenu(FlowController.Instance.MainTabView[0]);
            mainKundkort = (Views.Kundkort)AccessController.Instance.ReturnMainView();
            updateComboboxes();
        }
        //Vid uppstart + bör köras om ny kund läggs till
        public void updateComboboxes()
        {
            kC = new KundController();
            kunder = kC.RetrieveCustomers();
            FilterComboboxes();
        }
        private void FilterComboboxes()
        {
            string kundkategori;
            if (cmbKundkategori.Text == "Alla")
            {
                kundkategori = "";
            }
            else
            {
                kundkategori = cmbKundkategori.Text;
            }
            cmbKundnamn.Items.Clear();
            cmbKundID.Items.Clear();
            foreach (Kundregister k in kunder)
            {
                if (k.kundkategori == kundkategori || kundkategori == "")
                {
                    cmbKundnamn.Items.Add(k.kundNamn);
                    cmbKundID.Items.Add(k.kundID);
                }
            }
        }
        //Val av kategori
        private void OnSearchIndexChange(object sender, EventArgs e)
        {
            clearCmbs();
            FilterComboboxes();
            onSearchChange(sender, e);
        }
        //Aktuella filtreringar för datagridviewn
        public void onSearchChange(object sender, EventArgs e)
        {
            string kundkategori = cmbKundkategori.Text;
            if (cmbKundkategori.Text == "Alla")
            {
                kundkategori = "";
            }
            else
            {

                kundkategori = cmbKundkategori.Text;
            }
            mainKundkort.updateDgv(kundkategori, "", "");

        }
        private void clearCmbs()
        {
            cmbKundnamn.Text = "";
            cmbKundID.Text = "";
        }

        private void KundIdChange(object sender, EventArgs e)
        {
            if (sender == cmbKundID && cmbKundID.Focused)
            {
                foreach (Kundregister k in kunder)
                {
                    if (k.kundID == cmbKundID.Text)
                    {
                        cmbKundnamn.Text = k.kundNamn;
                        break;
                    }
                }
                mainKundkort.updateDgv("", cmbKundnamn.Text, cmbKundID.Text);
            }
        }
        private void KundNameChange(object sender, EventArgs e)
        {
            if (sender == cmbKundnamn && cmbKundnamn.Focused)
            {
                foreach (Kundregister k in kunder)
                {
                    if (k.kundNamn == cmbKundnamn.Text)
                    {
                        cmbKundID.Text = k.kundID;
                        break;
                    }
                }
                mainKundkort.updateDgv("", cmbKundnamn.Text, cmbKundID.Text);
            }
        }
    }
}
